<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="app">
  <cpn></cpn>
</div>

<template id="ccpn">
  <div>
    <h2>我是ccpn子组件</h2>
    <button @click="btnClick">按钮</button>
  </div>
</template>

<template id="cpn">
  <div>
    <h2>我是cpn父组件</h2>
    <ccpn></ccpn>
  </div>
</template>

<script src="../js/vue.js"></script>
<script>
  const app=new Vue({
    el: '#app',
    data: {
      message: '你好'
    },
    components:{
      cpn:{
        template:'#cpn',
        data(){
          return {
            name:'我是父组件cpn里的name'
          }
        },
        components:{
          ccpn:{
            template:'#ccpn',
            methods:{
              btnClick(){
                // 方法一：访问父组件$parent,开发中$parent很少使用，尽量避免直接访问父组件中的数据
                console.log(this.$parent.name);
              //  方法二：访问根组件$root
                console.log(this.$root.message)
              }
            }
          }
          
        }
      }
    }
  })

</script>
</body>
</html>